// 上面这个代码处理过度动画（默认加上不用管）
document.addEventListener("DOMContentLoaded", () => {
  setTimeout(() => {
    document.body.classList.add("sidenav-pinned")
    document.body.classList.add("ready")
  }, 200)
})

// 每个页面都会导入该js 统一的设置写这里即可
// ------------- toast抽取未方法 -------------
// 变量建议也存到 function的内部
function tip(msg) {
  // 1 保存dom元素
  const toastDom = document.querySelector("#myToast")
  // 2 创建 toast对象 轻提示
  const toast = new bootstrap.Toast(toastDom)
  // 逻辑略
  // 2.5 需要提示信息
  document.querySelector(".toast-body").innerHTML = msg
  // 3 弹出
  toast.show()
}
// tip('（￣︶￣）↗　') // 弹出提示 并显示设置的信息
// 设置基地址
axios.defaults.baseURL = "http://ajax-api.itheima.net"

// ------------- 添加请求拦截器 -------------
axios.interceptors.request.use(
  function (config) {
    console.log("执行请求拦截器中的逻辑")
    console.log("config:", config)
    // 获取本次请求的设置 并设置修改
    config.headers.Authorization = localStorage.getItem("usertoken")
    // 在请求发送前做些什么
    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
axios.interceptors.response.use(
  function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // console.log("响应拦截器成功的逻辑")
    console.log("response:", response)
    // 对响应数据做点什么
    return response.data
  },
  function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // console.log("响应拦截器异常(失败)的部分")

    // 判断请求的异常
    if (error.response.status === 401) {
      localStorage.removeItem("username")
      localStorage.removeItem("usertoken")
      // 跳转到登录页
      window.location.href = "./login.html"
    }
    // 对响应错误做点什么
    return Promise.reject(error)
  }
)

// ------------- 获取+设置用户名 -------------
const username = localStorage.getItem("username")
const nameSpan = document.querySelector("#navbar-main .text-sm")
// console.log('nameSpan:', nameSpan)
// nameSpan存在 再赋值
if (nameSpan !== null) {
  nameSpan.innerHTML = username
}

// ------------- 用户退出 -------------
const logoutDom = document.querySelector("#logout")
logoutDom &&
  (logoutDom.onclick = function () {
    // 删掉保存的用户名跟token
    localStorage.removeItem("username")
    localStorage.removeItem("usertoken")
    window.location.href = "./login.html"
  })
